/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.helpdesk.ejb;

import com.helpdesk.controlador.HdUsuariosController;
import com.helpdesk.controlador.util.JsfUtil;
import com.helpdesk.dao.HdUsuariosFacade;
import com.helpdesk.entidades.HdUsuarios;
import java.io.IOException;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import org.primefaces.context.RequestContext;


/**
 *
 * @author Manuel
 */

@SessionScoped
@ManagedBean(name = "mBLogin")
public class MBLogin {

    private String user;
    private String pass;
    private static int tipUser;
    private int codUsuario;
    public static int logeado;
    private  HdUsuarios us;
    @EJB
    private HdUsuariosFacade ejbuser;

    public MBLogin() {
    }

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public int getTipUser() {
        return tipUser;
    }

    public void setTipUser(int tipUser) {
        this.tipUser = tipUser;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public int getCodUsuario() {
        return codUsuario;
    }

    public void setCodUsuario(int codUsuario) {
        this.codUsuario = codUsuario;
    }

    public HdUsuarios getUs() {
        return us;
    }

    public void setUs(HdUsuarios us) {
        this.us = us;
    }
    
    /**
     * @return the logeado
     */
    public int getLogeado() {
        return logeado;
    }

    /**
     * @param logeado the logeado to set
     */
    public void setLogeado(int logeado) {
        this.logeado = logeado;
    }
    
    
    public String action() {
        RequestContext context = RequestContext.getCurrentInstance();
        FacesMessage msg= null;
   
      us = ejbuser.Autenticacion(user, HdUsuariosController.cifrarPassword(pass));

        if (us.getCodUsuario() > 0) {
            tipUser=us.getCodRol().getCodRol();
            codUsuario=us.getCodUsuario();
       
            logeado=1;

            //return "newTemplateClient";
            //return "valid";
            //return "newTemplate";

            msg= new FacesMessage(FacesMessage.SEVERITY_INFO, "Bienvenido a HelpDeskv1.0", user);
            FacesContext.getCurrentInstance().addMessage(null, msg);
            //return "newTemplate";
            return "valid";
        } else {
            tipUser=0;
            codUsuario=0;
            
            logeado=0; 
            
            //return "";
            //return "invalid";

            msg= new FacesMessage(FacesMessage.SEVERITY_WARN , "Error al Ingresar sus credenciales, favor verificar", user);
            FacesContext.getCurrentInstance().addMessage(null, msg);
            //return "";
            return "invalid";
        }
    }
    
       public void logout(){
         ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
         HttpSession session = (HttpSession) externalContext.getSession(false);
         
          user=null;
          pass=null;
          tipUser=0;
          codUsuario=0;
          us=null;
         //session.invalidate();
         try {
             externalContext.redirect("/WebAppHelpDesk/");
         } catch (IOException e) {
             JsfUtil.addErrorMessage("Fallo en redirección a pagina de inicio.");
         }
 	}
       
    public void checkAlreadyLoggedin() throws IOException {
    if (logeado==0) {
        ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
        ec.redirect(ec.getRequestContextPath() + "/");
    }
}
    public void checkRolID() throws IOException {
    if (logeado==1 & tipUser==2 || tipUser==3) {
        ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
        ec.redirect(ec.getRequestContextPath() + "/faces/noaccess.xhtml");
    }
}    
}
